#include <bits/stdc++.h>
using namespace std;
int dir[5][2]={{1,0},{1,1},{0,1},{-1,0},{-1,1}};
char f[101][101];
int pos[2];
int n,m,ans;
bool check(int d){
    int ppos[2]={
        pos[0]+dir[d][0],
        pos[1]+dir[d][1]
    };
    if ( ppos[0] > n || ppos[1] > m) return false;
    if (f[ppos[0]][ppos[1]]=='.') return false;
    return true;
}
void dfs(){
    if (pos[1]>m || pos[0] >n){
        return;
    }
    bool flag=false;
    for (int i = 0; i < 5; i++)
    {
        if(check(i)){
            flag=true;
            pos[0]+=dir[i][0];
            pos[1]+=dir[i][1];
            f[pos[0]][pos[1]]=='.';
            dfs();
            pos[0]-=dir[i][0];
            pos[1]-=dir[i][1];
            f[pos[0]][pos[1]]=='.';
        }
    }
    if (flag) ans++;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            scanf("%c",&f[i][j]);
        }
    }
    dfs();
    cout<<ans;
    return 0;
}